Skip to content

chore: add logs to debug our PTC votes#9418

Merged
nflaig merged 4 commits into
unstablefrom
nflaig/ptc-debug-logs
Jun 1, 2026
Merged

chore: add logs to debug our PTC votes#9418
nflaig merged 4 commits into
unstablefrom
nflaig/ptc-debug-logs

Conversation

@nflaig
Copy link
Copy Markdown
Member

@nflaig nflaig commented May 28, 2026

No description provided.

@nflaig nflaig requested a review from a team as a code owner May 28, 2026 20:16
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds detailed logging for payload attestation data. It introduces a debug log in the validator API implementation containing various payload properties, and updates the info log in the PTC service to include 'payloadPresent' and 'blobDataAvailable' fields when publishing payload attestation messages. There are no review comments, and I have no feedback to provide.

wemeetagain
wemeetagain previously approved these changes May 28, 2026
@nflaig
Copy link
Copy Markdown
Member Author

nflaig commented May 28, 2026

I can update this PR once we merge #9406, otherwise it will conflict as we get rid of blockIsForSlot (which is good)

@nflaig nflaig marked this pull request as draft May 28, 2026 20:33
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 28, 2026

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 1a5b33a Previous: c8732e0 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 874.45 us/op 829.39 us/op 1.05
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 39.502 us/op 39.123 us/op 1.01
BLS verify - blst 754.37 us/op 704.93 us/op 1.07
BLS verifyMultipleSignatures 3 - blst 1.3663 ms/op 1.3661 ms/op 1.00
BLS verifyMultipleSignatures 8 - blst 2.1607 ms/op 2.1735 ms/op 0.99
BLS verifyMultipleSignatures 32 - blst 6.8355 ms/op 6.9403 ms/op 0.98
BLS verifyMultipleSignatures 64 - blst 13.322 ms/op 13.025 ms/op 1.02
BLS verifyMultipleSignatures 128 - blst 25.935 ms/op 25.464 ms/op 1.02
BLS deserializing 10000 signatures 608.76 ms/op 629.04 ms/op 0.97
BLS deserializing 100000 signatures 6.0307 s/op 6.2676 s/op 0.96
BLS verifyMultipleSignatures - same message - 3 - blst 800.99 us/op 700.82 us/op 1.14
BLS verifyMultipleSignatures - same message - 8 - blst 940.07 us/op 945.96 us/op 0.99
BLS verifyMultipleSignatures - same message - 32 - blst 1.5092 ms/op 1.5437 ms/op 0.98
BLS verifyMultipleSignatures - same message - 64 - blst 2.3733 ms/op 2.2433 ms/op 1.06
BLS verifyMultipleSignatures - same message - 128 - blst 4.0972 ms/op 4.0179 ms/op 1.02
BLS aggregatePubkeys 32 - blst 17.613 us/op 17.551 us/op 1.00
BLS aggregatePubkeys 128 - blst 63.034 us/op 62.787 us/op 1.00
getSlashingsAndExits - default max 47.126 us/op 47.165 us/op 1.00
getSlashingsAndExits - 2k 356.87 us/op 318.34 us/op 1.12
proposeBlockBody type=full, size=empty 627.80 us/op 714.78 us/op 0.88
isKnown best case - 1 super set check 200.00 ns/op 172.00 ns/op 1.16
isKnown normal case - 2 super set checks 165.00 ns/op 165.00 ns/op 1.00
isKnown worse case - 16 super set checks 177.00 ns/op 165.00 ns/op 1.07
validate api signedAggregateAndProof - struct 1.5059 ms/op 1.5190 ms/op 0.99
validate gossip signedAggregateAndProof - struct 1.4965 ms/op 1.5150 ms/op 0.99
batch validate gossip attestation - vc 640000 - chunk 32 101.27 us/op 105.08 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 64 87.736 us/op 91.174 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 128 81.699 us/op 84.685 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 256 78.073 us/op 81.313 us/op 0.96
bytes32 toHexString 273.00 ns/op 298.00 ns/op 0.92
bytes32 Buffer.toString(hex) 158.00 ns/op 158.00 ns/op 1.00
bytes32 Buffer.toString(hex) from Uint8Array 216.00 ns/op 221.00 ns/op 0.98
bytes32 Buffer.toString(hex) + 0x 167.00 ns/op 158.00 ns/op 1.06
Return object 10000 times 0.20070 ns/op 0.20960 ns/op 0.96
Throw Error 10000 times 3.1088 us/op 3.2409 us/op 0.96
toHex 81.927 ns/op 93.486 ns/op 0.88
Buffer.from 74.919 ns/op 83.477 ns/op 0.90
shared Buffer 48.093 ns/op 55.595 ns/op 0.87
fastMsgIdFn sha256 / 200 bytes 1.3530 us/op 1.4560 us/op 0.93
fastMsgIdFn h32 xxhash / 200 bytes 145.00 ns/op 147.00 ns/op 0.99
fastMsgIdFn h64 xxhash / 200 bytes 202.00 ns/op 203.00 ns/op 1.00
fastMsgIdFn sha256 / 1000 bytes 4.4200 us/op 4.7180 us/op 0.94
fastMsgIdFn h32 xxhash / 1000 bytes 225.00 ns/op 239.00 ns/op 0.94
fastMsgIdFn h64 xxhash / 1000 bytes 243.00 ns/op 254.00 ns/op 0.96
fastMsgIdFn sha256 / 10000 bytes 39.078 us/op 42.131 us/op 0.93
fastMsgIdFn h32 xxhash / 10000 bytes 1.1910 us/op 1.2490 us/op 0.95
fastMsgIdFn h64 xxhash / 10000 bytes 792.00 ns/op 810.00 ns/op 0.98
send data - 1000 256B messages 4.0839 ms/op 3.9474 ms/op 1.03
send data - 1000 512B messages 4.2130 ms/op 4.0731 ms/op 1.03
send data - 1000 1024B messages 4.3622 ms/op 4.1583 ms/op 1.05
send data - 1000 1200B messages 4.5848 ms/op 4.3764 ms/op 1.05
send data - 1000 2048B messages 4.5610 ms/op 4.6016 ms/op 0.99
send data - 1000 4096B messages 5.2999 ms/op 5.4342 ms/op 0.98
send data - 1000 16384B messages 14.344 ms/op 15.566 ms/op 0.92
send data - 1000 65536B messages 142.84 ms/op 163.99 ms/op 0.87
enrSubnets - fastDeserialize 64 bits 754.00 ns/op 727.00 ns/op 1.04
enrSubnets - ssz BitVector 64 bits 267.00 ns/op 258.00 ns/op 1.03
enrSubnets - fastDeserialize 4 bits 102.00 ns/op 100.00 ns/op 1.02
enrSubnets - ssz BitVector 4 bits 262.00 ns/op 257.00 ns/op 1.02
prioritizePeers score -10:0 att 32-0.1 sync 2-0 204.37 us/op 205.76 us/op 0.99
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 228.69 us/op 231.83 us/op 0.99
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 344.42 us/op 339.94 us/op 1.01
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 610.22 us/op 597.96 us/op 1.02
prioritizePeers score 0:0 att 64-1 sync 4-1 779.54 us/op 690.83 us/op 1.13
array of 16000 items push then shift 1.2987 us/op 1.2869 us/op 1.01
LinkedList of 16000 items push then shift 6.9870 ns/op 6.6610 ns/op 1.05
array of 16000 items push then pop 67.626 ns/op 65.513 ns/op 1.03
LinkedList of 16000 items push then pop 5.9340 ns/op 6.0310 ns/op 0.98
array of 24000 items push then shift 1.9236 us/op 1.9027 us/op 1.01
LinkedList of 24000 items push then shift 6.6430 ns/op 6.2940 ns/op 1.06
array of 24000 items push then pop 96.015 ns/op 94.125 ns/op 1.02
LinkedList of 24000 items push then pop 5.9370 ns/op 5.9910 ns/op 0.99
intersect bitArray bitLen 8 4.7510 ns/op 4.7390 ns/op 1.00
intersect array and set length 8 29.341 ns/op 30.096 ns/op 0.97
intersect bitArray bitLen 128 24.053 ns/op 24.063 ns/op 1.00
intersect array and set length 128 496.32 ns/op 503.76 ns/op 0.99
bitArray.getTrueBitIndexes() bitLen 128 978.00 ns/op 1.0980 us/op 0.89
bitArray.getTrueBitIndexes() bitLen 248 1.7770 us/op 1.7490 us/op 1.02
bitArray.getTrueBitIndexes() bitLen 512 3.5320 us/op 3.4510 us/op 1.02
Full columns - reconstruct all 6 blobs 114.22 us/op 105.46 us/op 1.08
Full columns - reconstruct half of the blobs out of 6 62.648 us/op 94.285 us/op 0.66
Full columns - reconstruct single blob out of 6 32.034 us/op 36.560 us/op 0.88
Half columns - reconstruct all 6 blobs 377.12 ms/op 376.63 ms/op 1.00
Half columns - reconstruct half of the blobs out of 6 188.60 ms/op 188.81 ms/op 1.00
Half columns - reconstruct single blob out of 6 67.487 ms/op 67.010 ms/op 1.01
Full columns - reconstruct all 10 blobs 188.17 us/op 165.26 us/op 1.14
Full columns - reconstruct half of the blobs out of 10 139.00 us/op 123.32 us/op 1.13
Full columns - reconstruct single blob out of 10 27.522 us/op 27.509 us/op 1.00
Half columns - reconstruct all 10 blobs 623.10 ms/op 624.67 ms/op 1.00
Half columns - reconstruct half of the blobs out of 10 313.84 ms/op 315.16 ms/op 1.00
Half columns - reconstruct single blob out of 10 66.947 ms/op 66.649 ms/op 1.00
Full columns - reconstruct all 20 blobs 1.8186 ms/op 1.5273 ms/op 1.19
Full columns - reconstruct half of the blobs out of 20 210.13 us/op 205.13 us/op 1.02
Full columns - reconstruct single blob out of 20 30.368 us/op 32.113 us/op 0.95
Half columns - reconstruct all 20 blobs 1.2406 s/op 1.2462 s/op 1.00
Half columns - reconstruct half of the blobs out of 20 624.27 ms/op 622.30 ms/op 1.00
Half columns - reconstruct single blob out of 20 67.421 ms/op 66.453 ms/op 1.01
Set add up to 64 items then delete first 2.1736 us/op 2.1925 us/op 0.99
OrderedSet add up to 64 items then delete first 3.0721 us/op 3.3971 us/op 0.90
Set add up to 64 items then delete last 1.9338 us/op 2.1819 us/op 0.89
OrderedSet add up to 64 items then delete last 2.9645 us/op 3.4485 us/op 0.86
Set add up to 64 items then delete middle 2.1515 us/op 2.2295 us/op 0.97
OrderedSet add up to 64 items then delete middle 4.7652 us/op 4.8779 us/op 0.98
Set add up to 128 items then delete first 4.2804 us/op 4.2821 us/op 1.00
OrderedSet add up to 128 items then delete first 6.5213 us/op 6.3259 us/op 1.03
Set add up to 128 items then delete last 3.8945 us/op 4.0503 us/op 0.96
OrderedSet add up to 128 items then delete last 5.8133 us/op 6.1715 us/op 0.94
Set add up to 128 items then delete middle 3.8737 us/op 4.0643 us/op 0.95
OrderedSet add up to 128 items then delete middle 11.640 us/op 12.037 us/op 0.97
Set add up to 256 items then delete first 7.0902 us/op 7.9077 us/op 0.90
OrderedSet add up to 256 items then delete first 11.287 us/op 11.769 us/op 0.96
Set add up to 256 items then delete last 6.9265 us/op 8.0352 us/op 0.86
OrderedSet add up to 256 items then delete last 10.538 us/op 12.149 us/op 0.87
Set add up to 256 items then delete middle 6.7178 us/op 7.9570 us/op 0.84
OrderedSet add up to 256 items then delete middle 31.653 us/op 35.233 us/op 0.90
pass gossip attestations to forkchoice per slot 2.5280 ms/op 2.5207 ms/op 1.00
forkChoice updateHead vc 100000 bc 64 eq 0 424.67 us/op 461.56 us/op 0.92
forkChoice updateHead vc 600000 bc 64 eq 0 2.5118 ms/op 2.7475 ms/op 0.91
forkChoice updateHead vc 1000000 bc 64 eq 0 4.1745 ms/op 4.5187 ms/op 0.92
forkChoice updateHead vc 600000 bc 320 eq 0 2.5366 ms/op 2.7059 ms/op 0.94
forkChoice updateHead vc 600000 bc 1200 eq 0 2.5693 ms/op 2.7241 ms/op 0.94
forkChoice updateHead vc 600000 bc 7200 eq 0 2.6408 ms/op 3.0980 ms/op 0.85
forkChoice updateHead vc 600000 bc 64 eq 1000 2.7248 ms/op 3.3527 ms/op 0.81
forkChoice updateHead vc 600000 bc 64 eq 10000 2.9821 ms/op 3.4638 ms/op 0.86
forkChoice updateHead vc 600000 bc 64 eq 300000 6.4452 ms/op 7.8154 ms/op 0.82
computeDeltas 1400000 validators 0% inactive 11.719 ms/op 14.087 ms/op 0.83
computeDeltas 1400000 validators 10% inactive 10.957 ms/op 12.772 ms/op 0.86
computeDeltas 1400000 validators 20% inactive 10.071 ms/op 11.880 ms/op 0.85
computeDeltas 1400000 validators 50% inactive 7.6976 ms/op 9.3025 ms/op 0.83
computeDeltas 2100000 validators 0% inactive 17.722 ms/op 20.384 ms/op 0.87
computeDeltas 2100000 validators 10% inactive 16.544 ms/op 19.227 ms/op 0.86
computeDeltas 2100000 validators 20% inactive 15.304 ms/op 17.787 ms/op 0.86
computeDeltas 2100000 validators 50% inactive 8.8166 ms/op 13.892 ms/op 0.63
altair processAttestation - 250000 vs - 7PWei normalcase 2.3415 ms/op 1.7088 ms/op 1.37
altair processAttestation - 250000 vs - 7PWei worstcase 2.9649 ms/op 2.4238 ms/op 1.22
altair processAttestation - setStatus - 1/6 committees join 100.95 us/op 106.71 us/op 0.95
altair processAttestation - setStatus - 1/3 committees join 200.85 us/op 204.47 us/op 0.98
altair processAttestation - setStatus - 1/2 committees join 288.18 us/op 294.53 us/op 0.98
altair processAttestation - setStatus - 2/3 committees join 370.93 us/op 379.39 us/op 0.98
altair processAttestation - setStatus - 4/5 committees join 502.76 us/op 516.71 us/op 0.97
altair processAttestation - setStatus - 100% committees join 597.11 us/op 602.88 us/op 0.99
altair processBlock - 250000 vs - 7PWei normalcase 3.7309 ms/op 2.8218 ms/op 1.32
altair processBlock - 250000 vs - 7PWei normalcase hashState 17.264 ms/op 13.683 ms/op 1.26
altair processBlock - 250000 vs - 7PWei worstcase 18.818 ms/op 18.943 ms/op 0.99
altair processBlock - 250000 vs - 7PWei worstcase hashState 42.448 ms/op 37.810 ms/op 1.12
phase0 processBlock - 250000 vs - 7PWei normalcase 1.5521 ms/op 1.2978 ms/op 1.20
phase0 processBlock - 250000 vs - 7PWei worstcase 19.265 ms/op 16.878 ms/op 1.14
altair processEth1Data - 250000 vs - 7PWei normalcase 271.47 us/op 299.30 us/op 0.91
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:16 3.2540 us/op 3.2410 us/op 1.00
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:220 21.100 us/op 20.838 us/op 1.01
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:43 5.8350 us/op 5.9180 us/op 0.99
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:19 3.5930 us/op 3.6410 us/op 0.99
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1021 86.871 us/op 95.337 us/op 0.91
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11778 1.2755 ms/op 1.3645 ms/op 0.93
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.6971 ms/op 1.7990 ms/op 0.94
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.6780 ms/op 1.7821 ms/op 0.94
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.6244 ms/op 3.6087 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.9397 ms/op 2.0335 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.9728 ms/op 3.8696 ms/op 1.03
Tree 40 250000 create 374.01 ms/op 314.68 ms/op 1.19
Tree 40 250000 get(125000) 87.565 ns/op 108.33 ns/op 0.81
Tree 40 250000 set(125000) 931.52 ns/op 1.0705 us/op 0.87
Tree 40 250000 toArray() 12.558 ms/op 9.4021 ms/op 1.34
Tree 40 250000 iterate all - toArray() + loop 13.093 ms/op 9.4939 ms/op 1.38
Tree 40 250000 iterate all - get(i) 37.753 ms/op 35.168 ms/op 1.07
Array 250000 create 2.3326 ms/op 2.0093 ms/op 1.16
Array 250000 clone - spread 738.78 us/op 646.88 us/op 1.14
Array 250000 get(125000) 0.27700 ns/op 0.29300 ns/op 0.95
Array 250000 set(125000) 0.29000 ns/op 0.29600 ns/op 0.98
Array 250000 iterate all - loop 54.417 us/op 56.517 us/op 0.96
phase0 afterProcessEpoch - 250000 vs - 7PWei 52.677 ms/op 40.150 ms/op 1.31
Array.fill - length 1000000 2.2390 ms/op 2.2715 ms/op 0.99
Array push - length 1000000 8.6578 ms/op 7.5248 ms/op 1.15
Array.get 0.20742 ns/op 0.20373 ns/op 1.02
Uint8Array.get 0.23055 ns/op 0.24788 ns/op 0.93
phase0 beforeProcessEpoch - 250000 vs - 7PWei 13.287 ms/op 11.292 ms/op 1.18
altair processEpoch - mainnet_e81889 318.71 ms/op 232.13 ms/op 1.37
mainnet_e81889 - altair beforeProcessEpoch 19.212 ms/op 14.253 ms/op 1.35
mainnet_e81889 - altair processJustificationAndFinalization 5.8760 us/op 4.6940 us/op 1.25
mainnet_e81889 - altair processInactivityUpdates 3.4835 ms/op 3.6154 ms/op 0.96
mainnet_e81889 - altair processRewardsAndPenalties 17.931 ms/op 18.077 ms/op 0.99
mainnet_e81889 - altair processRegistryUpdates 526.00 ns/op 502.00 ns/op 1.05
mainnet_e81889 - altair processSlashings 127.00 ns/op 133.00 ns/op 0.95
mainnet_e81889 - altair processEth1DataReset 123.00 ns/op 133.00 ns/op 0.92
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.0445 ms/op 1.3031 ms/op 1.57
mainnet_e81889 - altair processSlashingsReset 691.00 ns/op 694.00 ns/op 1.00
mainnet_e81889 - altair processRandaoMixesReset 1.3950 us/op 1.0090 us/op 1.38
mainnet_e81889 - altair processHistoricalRootsUpdate 128.00 ns/op 130.00 ns/op 0.98
mainnet_e81889 - altair processParticipationFlagUpdates 432.00 ns/op 422.00 ns/op 1.02
mainnet_e81889 - altair processSyncCommitteeUpdates 102.00 ns/op 106.00 ns/op 0.96
mainnet_e81889 - altair afterProcessEpoch 42.301 ms/op 42.104 ms/op 1.00
capella processEpoch - mainnet_e217614 954.17 ms/op 713.34 ms/op 1.34
mainnet_e217614 - capella beforeProcessEpoch 54.019 ms/op 59.930 ms/op 0.90
mainnet_e217614 - capella processJustificationAndFinalization 7.1340 us/op 5.1150 us/op 1.39
mainnet_e217614 - capella processInactivityUpdates 14.136 ms/op 11.401 ms/op 1.24
mainnet_e217614 - capella processRewardsAndPenalties 104.90 ms/op 84.428 ms/op 1.24
mainnet_e217614 - capella processRegistryUpdates 4.4460 us/op 4.5640 us/op 0.97
mainnet_e217614 - capella processSlashings 128.00 ns/op 132.00 ns/op 0.97
mainnet_e217614 - capella processEth1DataReset 126.00 ns/op 131.00 ns/op 0.96
mainnet_e217614 - capella processEffectiveBalanceUpdates 15.286 ms/op 5.2712 ms/op 2.90
mainnet_e217614 - capella processSlashingsReset 667.00 ns/op 672.00 ns/op 0.99
mainnet_e217614 - capella processRandaoMixesReset 1.3900 us/op 1.0500 us/op 1.32
mainnet_e217614 - capella processHistoricalRootsUpdate 122.00 ns/op 134.00 ns/op 0.91
mainnet_e217614 - capella processParticipationFlagUpdates 426.00 ns/op 407.00 ns/op 1.05
mainnet_e217614 - capella afterProcessEpoch 106.12 ms/op 108.06 ms/op 0.98
phase0 processEpoch - mainnet_e58758 325.53 ms/op 252.11 ms/op 1.29
mainnet_e58758 - phase0 beforeProcessEpoch 57.298 ms/op 50.667 ms/op 1.13
mainnet_e58758 - phase0 processJustificationAndFinalization 5.9490 us/op 5.3510 us/op 1.11
mainnet_e58758 - phase0 processRewardsAndPenalties 17.176 ms/op 15.141 ms/op 1.13
mainnet_e58758 - phase0 processRegistryUpdates 2.1310 us/op 2.2550 us/op 0.95
mainnet_e58758 - phase0 processSlashings 120.00 ns/op 160.00 ns/op 0.75
mainnet_e58758 - phase0 processEth1DataReset 117.00 ns/op 131.00 ns/op 0.89
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 765.59 us/op 907.73 us/op 0.84
mainnet_e58758 - phase0 processSlashingsReset 845.00 ns/op 777.00 ns/op 1.09
mainnet_e58758 - phase0 processRandaoMixesReset 1.8390 us/op 1.1260 us/op 1.63
mainnet_e58758 - phase0 processHistoricalRootsUpdate 132.00 ns/op 135.00 ns/op 0.98
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.1240 us/op 931.00 ns/op 1.21
mainnet_e58758 - phase0 afterProcessEpoch 32.957 ms/op 33.042 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0996 ms/op 1.0091 ms/op 1.09
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5783 ms/op 1.5722 ms/op 1.00
altair processInactivityUpdates - 250000 normalcase 10.016 ms/op 10.397 ms/op 0.96
altair processInactivityUpdates - 250000 worstcase 9.9566 ms/op 10.362 ms/op 0.96
phase0 processRegistryUpdates - 250000 normalcase 2.3130 us/op 2.0930 us/op 1.11
phase0 processRegistryUpdates - 250000 badcase_full_deposits 143.93 us/op 148.41 us/op 0.97
phase0 processRegistryUpdates - 250000 worstcase 0.5 60.943 ms/op 50.627 ms/op 1.20
altair processRewardsAndPenalties - 250000 normalcase 15.366 ms/op 15.217 ms/op 1.01
altair processRewardsAndPenalties - 250000 worstcase 13.270 ms/op 15.024 ms/op 0.88
phase0 getAttestationDeltas - 250000 normalcase 5.3011 ms/op 5.3276 ms/op 1.00
phase0 getAttestationDeltas - 250000 worstcase 5.1364 ms/op 9.3183 ms/op 0.55
phase0 processSlashings - 250000 worstcase 59.103 us/op 59.215 us/op 1.00
altair processSyncCommitteeUpdates - 250000 10.120 ms/op 9.9480 ms/op 1.02
BeaconState.hashTreeRoot - No change 164.00 ns/op 165.00 ns/op 0.99
BeaconState.hashTreeRoot - 1 full validator 63.829 us/op 64.151 us/op 0.99
BeaconState.hashTreeRoot - 32 full validator 854.97 us/op 678.24 us/op 1.26
BeaconState.hashTreeRoot - 512 full validator 7.1200 ms/op 7.2846 ms/op 0.98
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 109.69 us/op 77.614 us/op 1.41
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.6925 ms/op 1.1160 ms/op 1.52
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 23.002 ms/op 14.359 ms/op 1.60
BeaconState.hashTreeRoot - 1 balances 68.981 us/op 61.986 us/op 1.11
BeaconState.hashTreeRoot - 32 balances 770.53 us/op 587.73 us/op 1.31
BeaconState.hashTreeRoot - 512 balances 4.9118 ms/op 5.5618 ms/op 0.88
BeaconState.hashTreeRoot - 250000 balances 172.98 ms/op 103.98 ms/op 1.66
aggregationBits - 2048 els - zipIndexesInBitList 18.810 us/op 19.413 us/op 0.97
regular array get 100000 times 21.875 us/op 22.521 us/op 0.97
wrappedArray get 100000 times 21.797 us/op 22.530 us/op 0.97
arrayWithProxy get 100000 times 10.087 ms/op 12.489 ms/op 0.81
ssz.Root.equals 20.147 ns/op 21.351 ns/op 0.94
byteArrayEquals 19.957 ns/op 21.145 ns/op 0.94
Buffer.compare 8.2300 ns/op 9.4420 ns/op 0.87
processSlot - 1 slots 9.1460 us/op 8.4080 us/op 1.09
processSlot - 32 slots 2.0750 ms/op 1.5259 ms/op 1.36
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 4.0471 ms/op 2.3751 ms/op 1.70
getCommitteeAssignments - req 1 vs - 250000 vc 1.5578 ms/op 1.6610 ms/op 0.94
getCommitteeAssignments - req 100 vs - 250000 vc 3.2579 ms/op 3.3873 ms/op 0.96
getCommitteeAssignments - req 1000 vs - 250000 vc 3.5019 ms/op 3.6400 ms/op 0.96
findModifiedValidators - 10000 modified validators 665.97 ms/op 627.42 ms/op 1.06
findModifiedValidators - 1000 modified validators 410.28 ms/op 508.35 ms/op 0.81
findModifiedValidators - 100 modified validators 278.21 ms/op 260.24 ms/op 1.07
findModifiedValidators - 10 modified validators 219.71 ms/op 146.54 ms/op 1.50
findModifiedValidators - 1 modified validators 186.33 ms/op 153.28 ms/op 1.22
findModifiedValidators - no difference 155.59 ms/op 144.45 ms/op 1.08
migrate state 1500000 validators, 3400 modified, 2000 new 3.3484 s/op 2.5945 s/op 1.29
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 3.5500 ns/op 3.7400 ns/op 0.95
state getBlockRootAtSlot - 250000 vs - 7PWei 472.77 ns/op 270.48 ns/op 1.75
computeProposerIndex 100000 validators 1.3220 ms/op 1.3232 ms/op 1.00
getNextSyncCommitteeIndices 1000 validators 2.8149 ms/op 2.8256 ms/op 1.00
getNextSyncCommitteeIndices 10000 validators 24.660 ms/op 24.951 ms/op 0.99
getNextSyncCommitteeIndices 100000 validators 88.893 ms/op 85.544 ms/op 1.04
computeProposers - vc 250000 539.66 us/op 537.96 us/op 1.00
computeEpochShuffling - vc 250000 40.859 ms/op 37.941 ms/op 1.08
getNextSyncCommittee - vc 250000 9.8337 ms/op 9.2675 ms/op 1.06
nodejs block root to RootHex using toHex 93.584 ns/op 102.16 ns/op 0.92
nodejs block root to RootHex using toRootHex 54.632 ns/op 55.713 ns/op 0.98
nodejs fromHex(blob) 823.48 us/op 727.26 us/op 1.13
nodejs fromHexInto(blob) 610.60 us/op 666.57 us/op 0.92
nodejs block root to RootHex using the deprecated toHexString 481.24 ns/op 493.12 ns/op 0.98
nodejs byteArrayEquals 32 bytes (block root) 25.653 ns/op 25.805 ns/op 0.99
nodejs byteArrayEquals 48 bytes (pubkey) 37.237 ns/op 37.330 ns/op 1.00
nodejs byteArrayEquals 96 bytes (signature) 35.578 ns/op 39.847 ns/op 0.89
nodejs byteArrayEquals 1024 bytes 39.300 ns/op 43.069 ns/op 0.91
nodejs byteArrayEquals 131072 bytes (blob) 1.7678 us/op 1.7509 us/op 1.01
browser block root to RootHex using toHex 141.39 ns/op 146.34 ns/op 0.97
browser block root to RootHex using toRootHex 126.72 ns/op 132.82 ns/op 0.95
browser fromHex(blob) 1.5681 ms/op 1.5101 ms/op 1.04
browser fromHexInto(blob) 589.14 us/op 663.21 us/op 0.89
browser block root to RootHex using the deprecated toHexString 464.15 ns/op 347.51 ns/op 1.34
browser byteArrayEquals 32 bytes (block root) 26.294 ns/op 27.794 ns/op 0.95
browser byteArrayEquals 48 bytes (pubkey) 37.395 ns/op 39.199 ns/op 0.95
browser byteArrayEquals 96 bytes (signature) 70.370 ns/op 73.362 ns/op 0.96
browser byteArrayEquals 1024 bytes 728.22 ns/op 746.61 ns/op 0.98
browser byteArrayEquals 131072 bytes (blob) 90.625 us/op 93.921 us/op 0.96

by benchmarkbot/action

…logs

# Conflicts:
#	packages/beacon-node/src/api/impl/validator/index.ts
@nflaig nflaig marked this pull request as ready for review May 31, 2026 12:26
@nflaig nflaig merged commit 6bd3b86 into unstable Jun 1, 2026
19 checks passed
@nflaig nflaig deleted the nflaig/ptc-debug-logs branch June 1, 2026 10:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants